import { defineStore } from 'pinia'
import { ref} from 'vue'
import { getLoginUserUsingGet } from '@/api/userController'
import { ACCESS_ENUM } from '@/access/accessEnum';
// 登录用户信息的全局Store

export const useLoginUserStore = defineStore('loginUser', () => {
  const loginUser = ref<API.LoginUserVO>({
    userName:"未登录",
  });

  function setLoginUser(newLoginUser: API.LoginUserVO) {
    loginUser.value = newLoginUser;
  }

  // 从后端获取登录用户信息
  async function fetchLoginUser(){
    
    setTimeout(()=>{
      loginUser.value = {userRole:ACCESS_ENUM.ADMIN,userName:"测试-管理员",id:1}
    },2000);

    const res = await getLoginUserUsingGet();
    if(res.data.code===0 && res.data.data){
      // 拿到登录用户信息
      loginUser.value = res.data.data;
    }else{
      // 用户第一次登录，此时后端没有用户信息
      loginUser.value = {userRole:ACCESS_ENUM.NOT_LOGIN}
    }
  }

  return { loginUser, setLoginUser,fetchLoginUser }
})